package com.supos.plugin.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

/**
 * 文件操作
 *
 * @author: chenfei
 * @date: 20-3-23
 */

public class FileOperation {

    /**
     * 单个文件复制
     *
     * @param oldPath 原文件路径 如：c:/fqf.txt
     * @param newPath 复制后路径 如：f:/fqf.txt
     */
    public static void copyFile(String oldPath, String newPath) throws RuntimeException {
        try {
            int bytesum = 0;
            int byteread = 0;
            File oldfile = new File(oldPath);
            if (oldfile.exists()) { //文件存在时
                InputStream inStream = new FileInputStream(oldPath); //读入原文件
                FileOutputStream fs = new FileOutputStream(newPath);
                byte[] buffer = new byte[1444];
                while ((byteread = inStream.read(buffer)) != -1) {
                    bytesum += byteread; //字节数 文件大小
                    fs.write(buffer, 0, byteread);
                }
                inStream.close();
            }
        } catch (Exception e) {
            throw new RuntimeException("复制单个文件操作出错");
        }
    }

    /**
     * 查询某个目录下是否有某种文件
     *
     * @param dir    目录
     * @param endTag 文件名以萨满结尾,如.jar
     * @return
     */
    public static boolean dirContainsFile(File dir, String endTag) {
        File[] files = dir.listFiles();
        for (int i = 0; i < files.length; i++) {
            File tempFile = files[i];
            if (tempFile.getName().endsWith(endTag)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 查询文件是否存在
     *
     * @param filePath 文件全路径，如 C:/a.txt
     * @return
     */
    public static boolean fileExist(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            return true;
        }
        return false;
    }
}
